﻿#
from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import socket, os

os.system("title 建立FTP服务器")
os.system("echo @Lee")
# 获取本机电脑名
my_name = socket.getfqdn(socket.gethostname())
# 获取本机ip
my_address = socket.gethostbyname(my_name)
# 分享的文件或者路径
while True:
    try:
        share = input("要分享的文件夹路径（绝对路径）：")
        if os.path.exists(share):
            break
    except:
        print("文件夹路径未找到")

os.system(f"title 正在分享[{share}]下的所有文件")

print(f'正在创建一个FTP服务器...\nIP地址为  ftp:\\\\{my_address}:2121\t服务器名称为{my_name}')
print('这个服务器的登录用户名:Lee\t密码:123\n')

# 新建一个用户组
authorizer = DummyAuthorizer()
# 将用户名，密码，指定目录，权限 添加到里面
authorizer.add_user("Lee", "123", share, perm="elr")

# 这个是添加匿名用户,任何人都可以访问，如果去掉的话，需要输入用户名和密码，可以自己尝试
authorizer.add_anonymous(share)

handler = FTPHandler
handler.authorizer = authorizer
port = 2121
# 开启服务器
try:
    server = FTPServer((my_address, port), handler)
    server.serve_forever()
except OSError:
    server = FTPServer((my_address, port+1), handler)
    server.serve_forever()
